package com.xiaoxing.gongqiju.mvp.api;

import com.xiaoxing.gongqiju.mvp.ui.entity.Instore;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_ChuKuCaoZuo;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_GuiHuan;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_GuiHuanCaoZuo;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_KuCunLieBiao;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_PaiZhaoZhuiZong;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_RuKu;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_RuKuCaoZuo;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_ShenQingChuKu;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_ShenQingChuKuTiJiaoShuJu;
import com.xiaoxing.gongqiju.mvp.ui.entity.LiaoCheng_GongQiJu_YingJiChuKu;
import com.xiaoxing.gongqiju.mvp.ui.entity.OutStore;
import com.xiaoxing.gongqiju.mvp.ui.entity.QueryDataMaterialClassSelect;
import com.xiaoxing.gongqiju.mvp.ui.entity.QueryDataMaterialGroupSelect;
import com.xiaoxing.gongqiju.mvp.ui.entity.RepairGongJu;
import com.xiaoxing.gongqiju.mvp.ui.entity.ReturnGongJu;
import com.xiaoxing.gongqiju.mvp.ui.entity.ReturnRepair;

import java.util.Map;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;

/**
 * @ProjectName: PrintOutInDemoNew20190910
 * @Package: com.xiaoxing.gongqiju.mvp.api
 * @ClassName: ApiService
 * @Description: java类作用描述
 * @Author: 小星
 * @CreateDate: 2020/12/22 0022 13:51
 * @UpdateUser: 更新者：
 * @UpdateDate: 2020/12/22 0022 13:51
 * @UpdateRemark: 更新说明：
 * @Version: 1.0
 */
public interface ApiService {
    /**
     * @param
     * @return
     * @method
     * @description 查询待入库列表
     * @date: 2020/12/22 0022 14:27
     * @author: 小星
     */
    @GET("api/MaterialToolAPI/QueryDataMaterialTool")
    Observable<LiaoCheng_GongQiJu_RuKu> getLiaoCheng_GongQiJu_RuKuList(@QueryMap Map<String, String> map);

    /**
     * @param
     * @return
     * @method
     * @description 工具物料组
     * @date: 2020/12/22 0022 14:27
     * @author: 小星
     */
    @GET("api/MaterialToolAPI/QueryDataMaterialGroupSelect")
    Observable<QueryDataMaterialGroupSelect> getQueryDataMaterialGroupSelect(@QueryMap Map<String, String> map);

    /**
     * @param
     * @return
     * @method
     * @description 工具类别
     * @date: 2020/12/22 0022 14:29
     * @author: 小星
     */
    @GET("api/MaterialToolAPI/QueryDataMaterialClassSelect")
    Observable<QueryDataMaterialClassSelect> getQueryDataMaterialClassSelect(@QueryMap Map<String, String> map);

    @GET("api/MaterialToolAPI/QueryDataInventoryGroupByName")
    Observable<LiaoCheng_GongQiJu_ShenQingChuKu> getLiaoCheng_GongQiJu_ShenQingChuKuList(@QueryMap Map<String, String> map);

    @GET("api/MaterialToolAPI/QueryOutStoreReadyData")
    Observable<LiaoCheng_GongQiJu_ChuKuCaoZuo> getLiaoCheng_GongQiJu_ChuKuCaoZuoList(@QueryMap Map<String, String> map);

    /**
     * @param
     * @return
     * @method
     * @description 待归还列表
     * @date: 2020/12/23 0023 13:50
     * @author: 小星
     */
    @GET("api/MaterialToolAPI/QueryReturnReadyDataGroup")
    Observable<LiaoCheng_GongQiJu_GuiHuan> getLiaoCheng_GongQiJu_GuiHuanList(@QueryMap Map<String, String> map);

    /**
     * @param
     * @return
     * @method
     * @description 归还操作
     * @date: 2020/12/23 0023 13:51
     * @author: 小星
     */
    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/Return")
    Observable<ReturnGongJu> returnGongJu(@Body RequestBody info);

    /**
     * @param
     * @return
     * @method
     * @description 维修
     * @date: 2020/12/23 0023 13:52
     * @author: 小星
     */
    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/Repair")
    Observable<RepairGongJu> repairGongJu(@Body RequestBody info);

    /**
     * @param
     * @return
     * @method
     * @description 库位列表
     * @date: 2020/12/22 0022 20:52
     * @author: 小星
     */
    @GET("api/MaterialToolAPI/GetToolSpaceList")
    Observable<LiaoCheng_GongQiJu_RuKuCaoZuo> getLiaoCheng_GongQiJu_RuKuCaoZuoList(@QueryMap Map<String, String> map);

    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/Instore")
    Observable<Instore> instore(@Body RequestBody info);

    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/outStoreApply")
    Observable<LiaoCheng_GongQiJu_ShenQingChuKuTiJiaoShuJu> getLiaoCheng_GongQiJu_ShenQingChuKuTiJiaoShuJuList(@Body RequestBody info);

    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/OutStore")
    Observable<OutStore> outStore(@Body RequestBody info);

    @GET("api/MaterialToolAPI/QueryDataInventory")
    Observable<LiaoCheng_GongQiJu_KuCunLieBiao> getLiaoCheng_GongQiJu_KuCunLieBiaoList(@QueryMap Map<String, String> map);

    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/UseTrack")
    Observable<LiaoCheng_GongQiJu_PaiZhaoZhuiZong> getLiaoCheng_GongQiJu_PaiZhaoZhuiZongData(@Body RequestBody info);

    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/ReturnRepair")
    Observable<ReturnRepair> returnRepair(@Body RequestBody info);

    @GET("api/MaterialToolAPI/QueryReturnReadySubData")
    Observable<LiaoCheng_GongQiJu_GuiHuanCaoZuo> getLiaoCheng_GongQiJu_GuiHuanCaoZuoList(@QueryMap Map<String, String> map);

    @Headers({"Content-Type: application/json", "Accept: application/json"})//需要添加头
    @POST("api/MaterialToolAPI/OutStoreEmergency")
    Observable<LiaoCheng_GongQiJu_YingJiChuKu> getLiaoCheng_GongQiJu_YingJiChuKuData(@Body RequestBody map);
}
